Data stream enabled return mail services

ABSTRACT

In an embodiment, an apparatus comprises one or more processors and one or more memories communicatively coupled to the one or more processors and storing instructions which, when processed by the one or more processors, cause: receiving a digital image of a particular item of mail and storing the digital image; causing data to be extracted from the digital image using Optical Character Recognition (OCR) or by processing encoded data; based on the extracted data, matching the particular item of mail to particular mailing data from the data stream; determining, based, at least in part, on the extracted data and the particular mailing data, one or more actions to take with respect to the particular item of mail and, in response, causing performance of the one or more actions.

FIELD

The technical field of the present disclosure relates to improved methods, systems, computer software, and/or computer hardware in the field of mail services. The disclosure relates more specifically to improved computer-implemented methods and systems for analyzing mail information.

BACKGROUND

The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.

When individuals change residences, an updated address is often needed to ensure that mail is properly delivered to the recipient. However, when a recipient moves without providing an updated address to a sender, mail that is sent to the old address cannot be delivered. Undeliverable as Addressed (UAA) mail is returned to the sender in the case of first class mail, or otherwise redirected. Subsequently, the sender and/or redistribution facilities often waste significant network bandwidth, computer processing resources, and memory searching for and attempting to compile updated recipient addresses. When these searches fail, not only are senders unable to convey promotions and outstanding bills to recipients, but recipients also miss promotions and suffer credit score decreases due to unpaid bills.

SUMMARY

The appended claims may serve as a summary. In an embodiment, an apparatus comprises one or more processors and one or more memories communicatively coupled to the one or more processors and storing instructions which, when processed by the one or more processors, cause: receiving a digital image of a particular item of mail and storing the digital image; causing data to be extracted from the digital image using Optical Character Recognition (OCR) or by processing encoded data; based on the extracted data, matching the particular item of mail to particular mailing data from the data stream; determining, based, at least in part, on the extracted data and the particular mailing data, one or more actions to take with respect to the particular item of mail and, in response, causing performance of the one or more actions.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements.

FIG. 1 depicts a networked computer system.

FIG. 2 is a flow diagram that depicts a method or algorithm for mail services.

FIG. 3 is a block diagram that depicts an example computer system upon which embodiments may be implemented.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments. It will be apparent, however, to one skilled in the art that the embodiments may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the embodiments.

I. GENERAL OVERVIEW

II. SYSTEM ARCHITECTURE

-   -   A. Processing and Management System     -   B. Database     -   C. Network     -   D. Services

III. PROCEDURAL OVERVIEW

IV. IMPLEMENTATION MECHANISMS

I. GENERAL OVERVIEW

According to various embodiments, computer-implemented apparatus, methods, and systems are provided that enable improved return mail services that may be provided on-premise and through a central delivery system. These return mail services include receiving and storing scanned images of UAA mail and extracting data by performing OCR or scanning encoded data, identifying a sender and a recipient of the UAA mail, checking two or more address correction databases for updated addresses of the recipient, determining delivery hit rates for each of the two or more address correction databases, assigning, based on a highest hit rate, at least one of the two or more address correction database as a primary database from which additional data is requested, and causing additional data to be requested from the primary database.

The services may also include causing printing of the updated address of the recipient on a piece of mail using a printing device associated with the sender. In some embodiments, the services may include causing the updated address of the recipient to be encoded at a computing device associated with the sender to generate encoded updated addresses, such as barcodes, Facing Identification Marks (FIM), Intelligent Mail Barcodes (IMB), or other encoded data, and subsequently printing the encoded updated address on a piece of mail using a printing device associated with the sender.

While return mail services provide benefits for UAA mail, such services are often unable to identify issues that would create UAA mail prior to the mail being sent out. This often occurs because identifying items of mail that have issues is more difficult when no record exists to match to the items of mail. Scanning each item of mail and identifying errors can be extremely inefficient when there is no source to match to the items of mail.

Technical benefits include improved computer and system efficiency by shifting the computer storage, memory, and processing burdens of determining updated mailing addresses away from senders. This decreases the excessive use of network bandwidth, as well as decreases the use of processing resources, such as CPU usage, and memory that the computing systems of the sender would otherwise waste on searching for updated mailing addresses. The distributed system architecture also has the added benefit of distributing processing resources such that overburdening a single computer is avoided. Moreover, incorporating a data stream allows a computer system to match images to a source of ground truth, allowing for more efficient processing and error detection prior to the sending of mail.

II. SYSTEM ARCHITECTURE

FIG. 1 depicts a networked computer system 100. In an embodiment, the computer system 100 comprises components that are implemented at least partially by hardware at one or more computing devices, such as one or more hardware processors executing program instructions stored in one or more memories for performing the functions that are described herein. All functions described herein are intended to indicate operations that are performed using programming in a special-purpose computer or general-purpose computer, in various embodiments. A “computer” or “computing device” may be one or more physical computers, virtual computers, and/or computing devices. As an example, a computer may be one or more server computers, cloud-based computers, cloud-based cluster of computers, virtual machine instances or virtual machine computing elements such as virtual processors, storage and memory, data centers, storage devices, desktop computers, laptop computers, mobile devices, and/or any other special-purpose computing devices. Any reference to “a computer” or “a computing device” herein may mean one or more computers, unless expressly stated otherwise. The instructions identified above are executable instructions and may comprise one or more executable files or programs that have been compiled or otherwise built based upon source code prepared in JAVA, C++, OBJECTIVE-C or any other suitable programming environment.

FIG. 1 depicts only one of many possible arrangements of components configured to execute the programming described herein. Other arrangements may include fewer or different components, and the division of work between the components may vary depending on the arrangement. In the example of FIG. 1, a networked computer system 100 may facilitate the secure exchange of data between computing devices of a processing and management system 110 and services 160. Therefore, each element of 110 and 160 of FIG. 1 may represent or be associated with one or more computers that host or execute processes that provide the functions and operations that are described further herein in connection with the processing and management system 110 or services 160. The networked computer system 100 is not limited the particular elements depicted in FIG. 1 and may include fewer or additional elements depending upon a particular implementation.

A. Processing and Management System

Processing and management system 110 may be a system configured to provide intake, processing, analysis, and management of UAA mail. Embodiments are depicted in the figures and described herein in the context of a single processing and management system 110 for the purposes of explanation, but any number of processing and management systems may be used.

The processing and management system 110 may feature a client device 120. In an embodiment, the client device 120 may be any type of client device 120 or a combination of client devices, including but not limited to a display screen, a workstation, a personal computer, a laptop computer, a tablet computing device, a personal digital assistant, or a smartphone. Client device 120 may equipped with or be associated with a scanner, camera, or any other device configured to capture a digital image. The client device 120 may also be a specialty device configured to open, prepare, and scan envelopes and/or the inner contents of envelopes. Although embodiments are depicted in the figures and described herein in the context of a single client device 120, embodiments are not limited to this example and any number of client devices may be used.

The client device 120 may execute an intake application 122, which allows a user to process UAA mail in association with the camera, scanner, or other image capture device. For example, client device 120 may be an integrated workstation, scanner, and envelope opener. Intake application 122 may be a software application that causes the integrated workstation, scanner, and envelope opener to scan the envelope, open the envelope, and/or scan the inner contents of the envelope. In another embodiment, client device 120 may be a laptop or desktop connected to a scanner. Intake application 122 may be a scanner software application installed on the laptop or desktop that enables a user to access and control the scanner and capture a digital image of the outer envelope and/or the inner contents of the UAA. In another embodiment, the client device 120 may be a smartphone that features a camera. Intake application 122 may be a scanner application installed on the smartphone that enables a user to access and control the camera to capture a digital image of outer envelope and/or inner contents of the UAA mail.

The processing and management system 110 may also feature a client device 130. In an embodiment, the client device 130 may be any type of client device 130 or a combination of client devices, including but not limited to one or more server computers. Although embodiments are depicted in the figures and described herein in the context of a single client device 130, embodiments are not limited to this example and any number of client devices may be used. For example, client device 130 may be multiple computers acting in conjunction with a web server to receive digital images of envelopes and/or inner contents of the UAA mail, check for updated mailing addresses from third-party databases, and store, categorize, organize, and display the digital images in association with their respective updated mailing addresses.

The client device 130 may execute management application 132. Management application 132 may receive and store the digital images of envelopes and/or the inner contents of the UAA mail and any relevant data in a database associated with the client device 130. In an embodiment, the management application 132 may also receive additional updated data related to the UAA mail from third party database, and store, categorize, organize the digital images and updated data for subsequently user access through a customer portal, as further described herein.

B. Database

In an embodiment, updated mailing addresses may be retrieved from database 140, 142. As used herein, the term “database” refers to a corpus of data, organized or unorganized, in any format, with or without a particular interface for accessing the corpus of data. Database 140 and database 142 may be two or more third-party address correction databases, such as the National Change of Address (NCOA) database and a Proprietary Change of Address (PCOA) database. The NCOA database may be, for example, the federal postal service's database for mail forwarding and address changes. A PCOA database may be any private database that maintains a record of addresses, such as a bank database, or any other private entity's database. Although embodiments are depicted in the figures and described herein in the context of two or more databases, embodiments are not limited to this example and any number of databases may be used. For example, the NCOA database, a PCOA database associated with a bank, and a PCOA associated with a private lender may all be used. Any number of address correction databases may be used.

C. Network

Network 150 broadly represents a combination of one or more local area networks (LANs), wide area networks (WANs), metropolitan area networks (MANs), global interconnected internetworks, such as the public internet, or a combination thereof. Each such network may use or execute stored programs that implement internetworking protocols according to standards such as the Open Systems Interconnect (OSI) multi-layer networking model, including but not limited to Transmission Control Protocol (TCP) or User Datagram Protocol (UDP), Internet Protocol (IP), Hypertext Transfer Protocol (HTTP), and so forth. All computers described herein may be configured to connect to the network 150 and the disclosure presumes that all elements of FIG. 1 are communicatively coupled via network 150. The various elements depicted in FIG. 1 may also communicate with each other via direct communications links that are not depicted in FIG. 1 for purposes of explanation.

D. Services

Services 160 may be return mail services that are provided to customers. In some embodiments, a client device 170 may be associated with a customer 180 such that the customer may access a return mail services portal through a service application 172 executed on the client device 170. The design of networked computer system 100 is such that services 160 may be delivered centrally and on-premise, in some embodiments. The client device 170 may be any type of client device, including but not limited to a workstation, a personal computer, a laptop computer, a tablet computing device, a personal digital assistant, or a smartphone. The service application 172 may be implemented by any number and types of processes executing on client device 170. For example, the service application 172 may be a web browser configured to access a web-based portal or website that is hosted on a remote server, such as client device 130. In another embodiment, the service application 172 may be a specialized software application installed locally on the client device 170.

Client device 190 may also be any type of client device, including but not limited to a workstation, a personal computer, a laptop computer, a tablet computing device, a personal digital assistant, a smartphone, or a printer. Client device 190 may be, for example, a client device associated with or integrated with a printer, such as a third-party partner printing device, that executes a printing application 192 for printing mail. In some embodiments, the printing application 192 may be configured to encode data and generate, for example, a barcode, FIM, IMB, or any other representation of encoded data.

III. PROCEDURAL OVERVIEW

FIG. 2 is a flow diagram that depicts a method or algorithm for mail services. The method 200 utilizes processing and management system 110 to scan UAA mail envelopes and/or content and store the scanned information, for example, by uploading the scanned information to a cloud server for storage. In an embodiment, the computer system may perform OCR to determine a recipient of the UAA mail and check third-party databases for an updated address. In another embodiment, the computer system may process encoded data to determine a recipient of the UAA mail and check third-party databases for an updated address. The encoded data may be, for example, a FIM, a barcode, a IMB, Quick Response (QR) matrix barcode, or any other optical representation or encoded representation of data. In another embodiment, a combination of both OCR and encoded data processing may be used. In an embodiment, the computer system may also perform OCR and/or process encoded data to determine a sender of the UAA mail and use the sender's information to classify the UAA mail into action queues. In an embodiment, the computer system may also organize and display the envelope and content images, any data associated with the envelope and content images, as well as updated addresses to customers through a GUI.

At step 210, the client device 130 receives a data stream comprising initial mailing data for a plurality of items of mail. For example, the client device 130 may receive a data stream created by a mail service prior to the sending of the plurality of items of mail items, such as the address change service (ACS) data stream provided by the United States Postal Service. Other streams may include data streams from the National Change of Address (NCOA) database or the Proprietary Change of Address (PCOA) database.

In an embodiment, the data stream identifies, for each item of mail of the plurality of items of mail, a sender name, a sender address, a recipient name, and a recipient address. The data stream may additionally include other identifying characteristics of the items of mail, such as an envelope size or type, a method of delivery, such as First Class or Overnight, or unique identifiers encoded on the items of mail, such as through barcodes or quick response (QR) codes.

At step 220, the client device 130 receives a digital image of a particular item of mail and stores the digital image in a first database. Specifically, a server may receive a scanned image of envelopes and/or the inner contents of envelopes for UAA mail from client device 120. In an embodiment, client device 120 may be a high-volume, integrated workstation, scanner, and envelope opener that generates digital images of envelopes and/or inner content by using an intake application 122 to scan envelopes, open envelopes, and/or scan the inner contents of the envelopes. In an embodiment, intake application 122 may also send the digital images to client device 130. Once the digital images of UAA mail are received by client device 130, the client device 130 may store the digital images in a database associated with the client device 130.

At step 230 the client device 130 may cause data to be extracted from the digital image using optical character recognition (OCR) or by processing encoded data. In some embodiments, the client device 130 may execute a local OCR service to extract data from the envelope and/or inner contents. In another embodiment, the client device 130 may coordinate with third party servers that host OCR services and provide the extracted data to the client device 130. In another embodiment, the client device 130 may cause data to be extracted by processing encoded data. The encoded data may be any type of computer-readable data, such as a FIM, an IMB, a barcode, QR matrix barcode, or any other type of encoded data. For example, the encoded data may be a two-dimensional barcode that stores unique user identification (UID) information. When the barcode is scanned, the client device 130 may match the UID to a UID stored in a database that is associated with the client device 130. The database may be, for example, a customer database storing the UID and any associated mailing information. In some embodiments, the client device 130 may process the encoded data locally to match the UID and extract the associated data. In another embodiment, the client device 130 may coordinate with third party devices that process the encoded data, extract any associated data, and provide the extracted data to the client device 130.

The extracted data may be, for example, the name and address of the recipient, the name and address of the sender (return address), the mail class, and/or data representing the inner contents of the envelope. The name or address of the sender may designate a specific department that the UAA mail came from, which may indicate a specific type of mail. For example, some senders may have a department dedicated to credit cards that is associated with a particular post office box (P.O. Box) and a separate department dedicated to motor finance that is associated with another P.O. Box. Any number of departments and any number of specific types of mail may be identified. In another embodiment, the type of mail may include, for example, a bill, a general advertisement, a specific promotional offer, or any other type of mail. The sender and/or the type of mail may subsequently be used to assign mail into action queues that allow the sender to evaluate recipient addresses for updates and correction. The name and address of the recipient may be used to check third-party databases for updated recipient addresses, as further described herein.

In an embodiment, steps 220 and 230 are performed by a separate computing device. For example, client device 130 may receive digital data extracted from the digital image of the particular item of mail through OCR or by processing of encoded data. The client device 130 may then process the extracted digital data to perform steps 240-260.

At step 240, after client device 130 causes data to be extracted from the digital image, particular mailing data from the data stream is matched to the extracted data. For example, the client device 130 may perform a search for one or more of a recipient name from the extracted data, a recipient address from the extracted data, a sender name from the extracted data, a sender address from the extracted data, date or time information from the extracted data, and/or unique identifiers encoded on the items of mail. For a particular item of mail, the client device may identify a corresponding data record in the data stream that corresponds to the particular item of mail, based on the results of the search described above.

In an embodiment, by receiving a data stream corresponding to the plurality of mail items, the client device 130 is able to identify errors or other issues with mail items prior to the mail items being sent. For example, a return mail service may be triggered to identify errors in an item of mail when the item of mail is returned as being undeliverable. Conversely, matching data on the item of mail to a data stream allows the system to verify the information on the mail items prior to the mail items being sent, thereby allowing the mail system to identify and resolve issues before negative results of the mail being sent occur. Thus, using the data stream allows the system to detect issues to resolve prior to an initial sending of the item of mail and/or after an item of mail has been returned.

At step 250, the client device 130 determines one or more actions to be taken with respect to the particular item of mail. The client device 130 may determine one or more actions to be taken in response to identifying an error in the data extracted from the digital image. For example, the client device 130 may determine that data on the particular item of mail does not match data in the data stream for a corresponding item of mail. As a practical example, a unique identifier may be used to match the particular item of mail to a corresponding record in the data stream, but a recipient address may be different between the particular item and the corresponding record. Alternatively, the client device 130 may determine that matching data on the item of mail is obscured or is not legible.

In an embodiment, the client device 130 determines one or more actions to perform in response to determining that the recipient address does not match an updated recipient address. For instance, the client device 130 may cause additional data to be requested from two or more second databases based on the data extracted from the digital image. Database 140, 142 may be third-party address correction databases such as the NCOA database associated with the United States Postal Service and/or a PCOA database associated with private entities. Individuals who change residences sometimes request mail forwarding or update their address with various private entities, such as their bank, utility provider, or any other entity. Mail forwarding is recorded in the NCOA database while requests to various private entities are recorded in PCOA databases.

In an embodiment, client device 130 may check the NCOA database and/or PCOA databases for updated mailing addresses. For example, after client device 130 determines the name of an intended recipient based on the name extracted from the digital image of the envelope, client device 130 may subsequently obtain an updated address for the intended recipient from the NCOA database and/or PCOA databases, such as database 140, 142. In an embodiment, the client device 130 may obtain the updated address directly from database 140, 142. In another embodiment, the client device 130 may coordinate with third party servers that request updated address from database 140, 142 and provide the updated address to the client device 130. All updated mailing addresses may be stored in a database associated with client device 130. The client device 130 may search the stored database for a record matching the recipient information extracted from the item of mail to determine if a recipient address has been changed. Based on determining that there is an updated address for the recipient, the system may perform the one or more actions.

The one or more actions may comprise any of the following: generating a corrected label, printing a correction directly onto the item of mail, displaying a warning through a graphical user interface, stopping the item of mail from being sent, encoding different data to be printed on a label or envelope, sending an additional item of mail to a destination address to confirm a correct address, placing a hold on sending of the item of mail until confirmation of a correct address is received, creating and sending a message to a client device requesting a phone call to be made to a recipient to confirm a destination address, identifying, reprinting, and resending an originally sent item of mail to an updated destination address, or scanning additional contents of the item of mail to determine an action. The system may determine the one or more actions based on a trigger for determining the one or more actions, such as an error in recipient information or a change of address, based on information relating to the item of mail, such as data scanned from an envelope or from contents of the item of mail, or based on or a sender of the item of mail. Alternatively, a same action may be performed for all items of mail that are identified as needing to have one or more actions performed.

In an embodiment, the system determines the one or more actions to perform on the item of mail based on one or more category determinations for the item of mail. For example, the system may store data identifying a plurality of categories and one or more actions to take with respect to mail items for each of the plurality of categories. When the system determines that an action should be performed with respect to an item of mail, the system may determine a category for the particular item of mail. Based on the category, the system may select an action to perform. For example, a first category entitled “confidential” may be associated with an action of “remove without opening and send notification” while a second category entitled “general” may be associated with an action of “print new label and send”.

In an embodiment, the system identifies categories for the items of mail based on data extracted from the digital image of the mail item. Categories may be determined based on the sender name, sender address, recipient name, recipient address, codified or otherwise printed data on the item of mail, or data within the contents of the item of mail. For example, if categories are based on contents of an item of mail, the system may extract data from an image of the contents, such as through an OCR of words or a capture of an image on a first page of the contents, and determine the category based on the extracted data. As a practical example, a particular symbol printed on a first page of the contents of an item of mail may be associated with confidential information or a style of form may be associated with a particular type of data record. Different methods may be used to identify different categories. For example, a first category may correspond to a particular recipient while a second category may correspond to an image of a first item of mail.

Determining the category of an item of mail may comprise identifying one or more rules for processing the mail to determine the categories and executing the rules. For example, a particular sender may codify categories in a bar code on items of mail. The system may identify the sender based on a sender name extracted from the digital image of the item of mail. In response to identifying the sender name, the system may match the sender name to a stored rule indicating that categories are codified in a bar code on items of mail. The system may then scan the bar code to determine the category for the item of mail.

At step 260, the system causes performance of the one or more actions. For example, the system may send instructions to one or more external devices to cause the one or more external devices to perform the one or more actions. Additionally or alternatively, the system may perform the one or more actions, such as sending a notification or warning to an external device. Examples of causing performance of the action are provided below.

The client device 130 may generate a corrected label and/or a correction to data printed on the particular item of mail. The client device 130 may cause printing of the corrected label and/or printing of the correction directly onto the particular item of mail. For example, the client device 130 may send instructions to one or more printing devices to cause printing a new label and/or to print directly onto an envelope. The client device 130 may further cause the item of mail to be routed to the printing device and/or cause a display device to display instructions to remove the item of mail from a plurality of items of mail and place a new label on the item of mail or move the item of mail to a printing device.

In an embodiment, the client device 130 causes display of a warning through a graphical user interface. For example, the client device 130 may identify a computing device associated with the particular item of mail. The client device 130 may cause display, on the computing device, of a notification identifying the particular item of mail and data indicating a trigger for displaying the notification. For example, the client device 130 may indicate that the notification is being displayed due to an error in the recipient address, illegible writing on the letter, obscuring of important information, and/or a change in the recipient address.

In an embodiment, the display includes options for performing additional actions. For example, the display may identify a plurality of actions that can be performed with respect to the item of mail, such as proceeding to send the item of mail as-is, printing a correction onto the item of mail, or returning the item of mail to the sender. The system may cause performance of an additional action in response to receiving a selection of the additional action to perform.

In an embodiment, client device 130 causes the item of mail to not be sent. For example, the system may use the methods described herein to identify errors in items of mail prior to sending the items of mail instead of or in addition to identifying the errors after the items of mail have been returned. The system may determine that an item of mail should not be sent in response to detecting an error, an obscuring of important information, illegible information, or a change of address for a recipient. In response to determining that the item of mail should not be sent, the system may cause the item of mail to be separated from the plurality of items of mail, such as through a sorting system, and/or send data to a computing device indicating that the item of mail should be removed from the plurality of items of mail.

In an embodiment, client device 130 encodes new data onto the item of mail. For example, client device 130 may determine that encoded data does not match data on the envelope or the data stream. In response, the client device 130 may identify corrections to the encoded data and encode new data based on the corrections. The client device 130 may then cause printing of the newly encoded data onto a label or directly onto the item of mail.

IV. CLIENT PORTAL

In an embodiment, sender addresses are associated with action queues that are generated by the management application 132. For example, the client device 130 may cause the digital image, the data, the additional data, and one or more options for the undeliverable mail to be displayed using a GUI. In an embodiment, client device 130 may host a web-based portal for information and options related to mail items for user access. For example, a customer 180 may use a client device 170 and a service application 172 to login and access a return mail service portal. The customer 180 may be, for example, a sender, an employee or agent of the sender, or anyone associated with the sender. The service application 172 may be configured to access and display the portal in a display screen of the client device 170.

The client portal may enable a user to access the digital image, the data corresponding to the old address, and the additional data corresponding to the new address. The client portal may be configured to use the sender's address extracted from the image of the item of mail to automatically classify the digital image of the item of mail and any data associated with the digital image into action queues. These action queues may be organized by sender or department such that items of mail related only to specific senders or departments may be viewed and acted upon. The action queues may also be organized by the type of mail, or a by a combination of the sender, department, and the type of mail.

The portal may also provide options for correcting or replacing the recipient address. For example, in an embodiment, the portal may feature an option for transferring or exporting the additional data corresponding to the new address to a sender's enterprise resource planning (ERP) or customer relationship management (CRM) systems such that the recipient's address may be updated in the sender's databases. This would allow the sender to send a piece of mail to the corrected address during their next mailing cycle. In another embodiment, the portal may feature an option for transferring or exporting the additional data corresponding to the new address to a sender's call center for subsequent follow-up. In another embodiment, the portal may feature an option to forward the item of mail to the new address.

In another embodiment, the portal may feature an option for transporting or exporting the additional data corresponding to the updated recipient address to client device 190 for subsequent printing using printing application 192. For example, client device 190 may be associated with a sender or customer's database that stores a digital version and/or the contents of the undeliverable mail. Client device 190 may subsequently access the customer database and re-print the undeliverable mail with the updated recipient address using a printing device. In an embodiment, client device 190 may also be configured to encode the recipient information. The encoded data may be any type of computer-readable data, such as a FIM, an IMB, a barcode, QR matrix barcode, or any other type of encoded data. For example, the encoded data may be a two-dimensional barcode that represents the recipient information, including the updated address. Subsequently, client device 190 may re-print the undeliverable mail with the barcode representing the updated recipient address.

In an embodiment, the portal may feature one or more options for establishing categories, rules for identifying categories, and/or actions to be taken with respect to items that fall into the categories. For category generation, the portal may feature one or more selectable options for generating a new category. When the category is created, the system may display options for generating rules for the category. For example, a drop down menu may include options of “sender name includes:”, “sender address includes”, “recipient name includes”, “recipient address includes”, “includes in bar code”, “includes in QR code”, “envelope includes”, or “contents include”. A second field may accept input defining values for the drop-down menu options, such as a sender name or recipient address. Additionally or alternatively, the portal may accept upload of an image or document that can be matched to images of the envelope or contents of mail. Additionally or alternatively, the system may access previously identified categories.

In an embodiment, the portal includes options for specifying actions to take with respect to items of mail. For example, a drop-down menu corresponding to a category may include options of “return”, “print corrected label”, “print correction”, “scan contents”, “send notification”, or “send as-is”. After an option is selected and the category rules stored, the system may implement the rules to identify the category and perform the action specified by the selected option. Options may also be dependent on an error type. For example, a first option may be specified for when data on the envelope does not match data in the data stream while a second option is specified for when data on the envelope and data stream does not match an updated address from the NCOA.

In an embodiment, one or more of the example options discussed herein may be automatically implemented. For example, the client device 130 may be configured to automatically cause the transferring or exporting of the data representing the new address to the ERP and/or CRM systems to update the address in the sender's database. In another embodiment, the client device 130 may be configured to automatically cause transferring or exporting of the data representing the new address to a call center or a client device 190 for printing and mailing. The client device 130 may also be configured to automatically cause forwarding the item of mail to the new address.

All action queues and options available may be customizable to fit customer needs and are, therefore, not limited to the embodiments described above. For example, one action queue maybe configured with a first set of actions or options to be performed while a second action queue may be configured with a second set of actions or options to be performed.

Using the foregoing techniques, programmed computers may process, store, organize, optimize, display, and manage mailing information in an improved return mail service system that decreases wasteful use of processing resources and increases the efficiency of the overall system. Traditional techniques without the improved techniques described above often result in wasted network bandwidth, computer processing resources, and memory in unsuccessful searches for updated recipient addresses. When these searches fail, not only are senders unable to convey promotions and outstanding bills to recipients, but recipients also miss promotions and suffer credit score decreases due to unpaid bills.

The foregoing techniques provide for an improvement in computer and system efficiency by decreasing the excessive use of senders' network bandwidth and decreasing the use of senders' processing resources on resource-intensive and often incomplete searches, by providing a centralized system that compiles and optimizes updated return mail information on behalf of the sender. For example, the approaches described above may reduce the amount of processing resources that a sender uses to search for a recipient's new address, thereby reducing the amount of computational and storage resources wasted in trying to update the address. Moreover, the optimization of updating addresses using delivery hit rates increases both efficiency and accuracy of the mailing process, thereby decreasing the wasteful and unnecessary use of additional processing resources in re-mailing attempts. As a result of this increase in computer and system efficiency, customer satisfaction and ROI increase.

V. IMPLEMENTATION MECHANISMS

Although the flow diagrams of the present application depict a particular set of steps in a particular order, other implementations may use fewer or more steps, in the same or different order, than those depicted in the figures.

According to one embodiment, the techniques described herein are implemented by at least one computing device. The techniques may be implemented in whole or in part using a combination of at least one server computer and/or other computing devices that are coupled using a network, such as a packet data network. The computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as at least one application-specific integrated circuit (ASIC) or field programmable gate array (FPGA) that is persistently programmed to perform the techniques, or may include at least one general purpose hardware processor programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the described techniques. The computing devices may be server computers, workstations, personal computers, portable computer systems, handheld devices, mobile computing devices, wearable devices, body mounted or implantable devices, smartphones, smart appliances, internetworking devices, autonomous or semi-autonomous devices such as robots or unmanned ground or aerial vehicles, any other electronic device that incorporates hard-wired and/or program logic to implement the described techniques, one or more virtual computing machines or instances in a data center, and/or a network of server computers and/or personal computers.

FIG. 3 is a block diagram that illustrates an example computer system with which an embodiment may be implemented. In the example of FIG. 3, a computer system 300 and instructions for implementing the disclosed technologies in hardware, software, or a combination of hardware and software, are represented schematically, for example as boxes and circles, at the same level of detail that is commonly used by persons of ordinary skill in the art to which this disclosure pertains for communicating about computer architecture and computer systems implementations.

Computer system 300 includes an input/output (I/O) subsystem 302 which may include a bus and/or other communication mechanism(s) for communicating information and/or instructions between the components of the computer system 300 over electronic signal paths. The I/O subsystem 302 may include an I/O controller, a memory controller and at least one I/O port. The electronic signal paths are represented schematically in the drawings, for example as lines, unidirectional arrows, or bidirectional arrows.

At least one hardware processor 304 is coupled to I/O subsystem 302 for processing information and instructions. Hardware processor 304 may include, for example, a general-purpose microprocessor or microcontroller and/or a special-purpose microprocessor such as an embedded system or a graphics processing unit (GPU) or a digital signal processor or ARM processor. Processor 304 may comprise an integrated arithmetic logic unit (ALU) or may be coupled to a separate ALU.

Computer system 300 includes one or more units of memory 306, such as a main memory, which is coupled to I/O subsystem 302 for electronically digitally storing data and instructions to be executed by processor 304. Memory 306 may include volatile memory such as various forms of random-access memory (RAM) or other dynamic storage device. Memory 306 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 304. Such instructions, when stored in non-transitory computer-readable storage media accessible to processor 304, can render computer system 300 into a special-purpose machine that is customized to perform the operations specified in the instructions.

Computer system 300 further includes non-volatile memory such as read only memory (ROM) 308 or other static storage device coupled to I/O subsystem 302 for storing information and instructions for processor 304. The ROM 308 may include various forms of programmable ROM (PROM) such as erasable PROM (EPROM) or electrically erasable PROM (EEPROM). A unit of persistent storage 310 may include various forms of non-volatile RAM (NVRAM), such as FLASH memory, or solid-state storage, magnetic disk or optical disk such as CD-ROM or DVD-ROM, and may be coupled to I/O subsystem 302 for storing information and instructions. Storage 310 is an example of a non-transitory computer-readable medium that may be used to store instructions and data which when executed by the processor 304 cause performing computer-implemented methods to execute the techniques herein.

The instructions in memory 306, ROM 308 or storage 310 may comprise one or more sets of instructions that are organized as modules, methods, objects, functions, routines, or calls. The instructions may be organized as one or more computer programs, operating system services, or application programs including mobile apps. The instructions may comprise an operating system and/or system software; one or more libraries to support multimedia, programming or other functions; data protocol instructions or stacks to implement TCP/IP, HTTP or other communication protocols; file format processing instructions to parse or render files coded using HTML, XML, JPEG, MPEG or PNG; user interface instructions to render or interpret commands for a graphical user interface (GUI), command-line interface or text user interface; application software such as an office suite, internet access applications, design and manufacturing applications, graphics applications, audio applications, software engineering applications, educational applications, games or miscellaneous applications. The instructions may implement a web server, web application server or web client. The instructions may be organized as a presentation layer, application layer and data storage layer such as a relational database system using structured query language (SQL) or no SQL, an object store, a graph database, a flat file system or other data storage.

Computer system 300 may be coupled via I/O subsystem 302 to at least one output device 312. In one embodiment, output device 312 is a digital computer display. Examples of a display that may be used in various embodiments include a touch screen display or a light-emitting diode (LED) display or a liquid crystal display (LCD) or an e-paper display. Computer system 300 may include other type(s) of output devices 312, alternatively or in addition to a display device. Examples of other output devices 312 include printers, ticket printers, plotters, projectors, sound cards or video cards, speakers, buzzers or piezoelectric devices or other audible devices, lamps or LED or LCD indicators, haptic devices, actuators or servos.

At least one input device 314 is coupled to I/O subsystem 302 for communicating signals, data, command selections or gestures to processor 304. Examples of input devices 314 include touch screens, microphones, still and video digital cameras, alphanumeric and other keys, keypads, keyboards, graphics tablets, image scanners, joysticks, clocks, switches, buttons, dials, slides, and/or various types of sensors such as force sensors, motion sensors, heat sensors, accelerometers, gyroscopes, and inertial measurement unit (IMU) sensors and/or various types of transceivers such as wireless, such as cellular or Wi-Fi, radio frequency (RF) or infrared (IR) transceivers and Global Positioning System (GPS) transceivers.

Another type of input device is a control device 316, which may perform cursor control or other automated control functions such as navigation in a graphical interface on a display screen, alternatively or in addition to input functions. Control device 316 may be a touchpad, a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 304 and for controlling cursor movement on display 312. The input device may have at least two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane. Another type of input device is a wired, wireless, or optical control device such as a joystick, wand, console, steering wheel, pedal, gearshift mechanism or other type of control device. An input device 314 may include a combination of multiple different input devices, such as a video camera and a depth sensor.

In another embodiment, computer system 300 may comprise an internet of things (IoT) device in which one or more of the output device 312, input device 314, and control device 316 are omitted. Or, in such an embodiment, the input device 314 may comprise one or more cameras, motion detectors, thermometers, microphones, seismic detectors, other sensors or detectors, measurement devices or encoders and the output device 312 may comprise a special-purpose display such as a single-line LED or LCD display, one or more indicators, a display panel, a meter, a valve, a solenoid, an actuator or a servo.

When computer system 300 is a mobile computing device, input device 314 may comprise a global positioning system (GPS) receiver coupled to a GPS module that is capable of triangulating to a plurality of GPS satellites, determining and generating geo-location or position data such as latitude-longitude values for a geophysical location of the computer system 300. Output device 312 may include hardware, software, firmware and interfaces for generating position reporting packets, notifications, pulse or heartbeat signals, or other recurring data transmissions that specify a position of the computer system 300, alone or in combination with other application-specific data, directed toward host 324 or server 330.

Computer system 300 may implement the techniques described herein using customized hard-wired logic, at least one ASIC or FPGA, firmware and/or program instructions or logic which when loaded and used or executed in combination with the computer system causes or programs the computer system to operate as a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 300 in response to processor 304 executing at least one sequence of at least one instruction contained in main memory 306. Such instructions may be read into main memory 306 from another storage medium, such as storage 310. Execution of the sequences of instructions contained in main memory 306 causes processor 304 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.

The term “storage media” as used herein refers to any non-transitory media that store data and/or instructions that cause a machine to operation in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage 310. Volatile media includes dynamic memory, such as memory 306. Common forms of storage media include, for example, a hard disk, solid state drive, flash drive, magnetic data storage medium, any optical or physical data storage medium, memory chip, or the like.

Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise a bus of I/O subsystem 302. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.

Various forms of media may be involved in carrying at least one sequence of at least one instruction to processor 304 for execution. For example, the instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a communication link such as a fiber optic or coaxial cable or telephone line using a modem. A modem or router local to computer system 300 can receive the data on the communication link and convert the data to a format that can be read by computer system 300. For instance, a receiver such as a radio frequency antenna or an infrared detector can receive the data carried in a wireless or optical signal and appropriate circuitry can provide the data to I/O subsystem 302 such as place the data on a bus. I/O subsystem 302 carries the data to memory 306, from which processor 304 retrieves and executes the instructions. The instructions received by memory 306 may optionally be stored on storage 310 either before or after execution by processor 304.

Computer system 300 also includes a communication interface 318 coupled to bus 302. Communication interface 318 provides a two-way data communication coupling to network link(s) 320 that are directly or indirectly connected to at least one communication networks, such as a network 322 or a public or private cloud on the Internet. For example, communication interface 318 may be an Ethernet networking interface, integrated-services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of communications line, for example an Ethernet cable or a metal cable of any kind or a fiber-optic line or a telephone line. Network 322 broadly represents a local area network (LAN), wide-area network (WAN), campus network, internetwork or any combination thereof. Communication interface 318 may comprise a LAN card to provide a data communication connection to a compatible LAN, or a cellular radiotelephone interface that is wired to send or receive cellular data according to cellular radiotelephone wireless networking standards, or a satellite radio interface that is wired to send or receive digital data according to satellite wireless networking standards. In any such implementation, communication interface 318 sends and receives electrical, electromagnetic or optical signals over signal paths that carry digital data streams representing various types of information.

Network link 320 typically provides electrical, electromagnetic, or optical data communication directly or through at least one network to other data devices, using, for example, satellite, cellular, Wi-Fi, or BLUETOOTH technology. For example, network link 320 may provide a connection through a network 322 to a host computer 324.

Furthermore, network link 320 may provide a connection through network 322 or to other computing devices via internetworking devices and/or computers that are operated by an Internet Service Provider (ISP) 326. ISP 326 provides data communication services through a world-wide packet data communication network represented as internet 328. A server computer 330 may be coupled to internet 328. Server 330 broadly represents any computer, data center, virtual machine or virtual computing instance with or without a hypervisor, or computer executing a containerized program system such as DOCKER or KUBERNETES. Server 330 may represent an electronic digital service that is implemented using more than one computer or instance and that is accessed and used by transmitting web services requests, uniform resource locator (URL) strings with parameters in HTTP payloads, API calls, app services calls, or other service calls. Computer system 300 and server 330 may form elements of a distributed computing system that includes other computers, a processing cluster, server farm or other organization of computers that cooperate to perform tasks or execute applications or services. Server 330 may comprise one or more sets of instructions that are organized as modules, methods, objects, functions, routines, or calls. The instructions may be organized as one or more computer programs, operating system services, or application programs including mobile apps. The instructions may comprise an operating system and/or system software; one or more libraries to support multimedia, programming or other functions; data protocol instructions or stacks to implement TCP/IP, HTTP or other communication protocols; file format processing instructions to parse or render files coded using HTML, XML, JPEG, MPEG or PNG; user interface instructions to render or interpret commands for a graphical user interface (GUI), command-line interface or text user interface; application software such as an office suite, internet access applications, design and manufacturing applications, graphics applications, audio applications, software engineering applications, educational applications, games or miscellaneous applications. Server 330 may comprise a web application server that hosts a presentation layer, application layer and data storage layer such as a relational database system using structured query language (SQL) or no SQL, an object store, a graph database, a flat file system or other data storage.

Computer system 300 can send messages and receive data and instructions, including program code, through the network(s), network link 320 and communication interface 318. In the Internet example, a server 330 might transmit a requested code for an application program through Internet 328, ISP 326, local network 322 and communication interface 318. The received code may be executed by processor 304 as it is received, and/or stored in storage 310, or other non-volatile storage for later execution.

The execution of instructions as described in this section may implement a process in the form of an instance of a computer program that is being executed, and consisting of program code and its current activity. Depending on the operating system (OS), a process may be made up of multiple threads of execution that execute instructions concurrently. In this context, a computer program is a passive collection of instructions, while a process may be the actual execution of those instructions. Several processes may be associated with the same program; for example, opening up several instances of the same program often means more than one process is being executed. Multitasking may be implemented to allow multiple processes to share processor 304. While each processor 304 or core of the processor executes a single task at a time, computer system 300 may be programmed to implement multitasking to allow each processor to switch between tasks that are being executed without having to wait for each task to finish. In an embodiment, switches may be performed when tasks perform input/output operations, when a task indicates that it can be switched, or on hardware interrupts. Time-sharing may be implemented to allow fast response for interactive user applications by rapidly performing context switches to provide the appearance of concurrent execution of multiple processes simultaneously. In an embodiment, for security and reliability, an operating system may prevent direct communication between independent processes, providing strictly mediated and controlled inter-process communication functionality. 

What is claimed is:
 1. An apparatus comprising: one or more processors; and one or more memories communicatively coupled to the one or more processors and storing instructions which, when processed by the one or more processors, cause: receiving a data stream comprising initial mailing data for a plurality of items of mail; receiving data extracted from a digital image of a particular item of mail using Optical Character Recognition (OCR) or by processing encoded data; based on the extracted data, matching the particular item of mail to particular mailing data from the data stream; determining, based, at least in part, on the extracted data and the particular mailing data, one or more actions to take with respect to the particular item of mail and, in response, causing performance of the one or more actions.
 2. The apparatus of claim 1, wherein the one or more actions comprise: identifying different mailing data for the particular item of mail; causing printing of the different data on the particular item of mail or on a label to be affixed to the particular item of mail using a printing device.
 3. The apparatus of claim 1, wherein the one or more actions comprise: identifying different mailing data for the particular item of mail; causing the different mailing data to be encoded to generate encoded different mailing data; causing printing of the encoded different mailing data on the particular item of mail or on a label to be affixed to the particular item of mail using a printing device.
 4. The apparatus of claim 1, wherein determining the one or more actions to take with respect to the particular item of mail comprises: storing policy data for a plurality of categories of mail; using the extracted data, identifying a particular category of the plurality of categories for the particular item of mail; extracting data defining the one or more actions from a subset of the policy data corresponding to the particular category.
 5. The apparatus of claim 1, wherein the digital image comprises one or more of an address line of an envelope of the particular piece of mail, a return address line of the envelope of the particular piece of mail, or contents of the particular piece of mail.
 6. The apparatus of claim 1, wherein determining the one or more actions to take with respect to the particular item of mail is performed prior to the particular piece of mail being sent out for delivery and wherein the one or more actions comprise updating a delivery destination for the particular item of mail.
 7. The apparatus of claim 1, wherein determining the one or more actions to take with respect to the particular item of mail is performed after the particular item of mail has been returned and wherein the one or more actions comprise updating a delivery destination for the particular item of mail and causing the particular item of mail to be re-mailed to the updated delivery destination.
 8. One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause performance of: receiving a data stream comprising initial mailing data for a plurality of items of mail; receiving data extracted from a digital image of a particular item of mail using Optical Character Recognition (OCR) or by processing encoded data; based on the extracted data, matching the particular item of mail to particular mailing data from the data stream; determining, based, at least in part, on the extracted data and the particular mailing data, one or more actions to take with respect to the particular item of mail and, in response, causing performance of the one or more actions.
 9. The one or more non-transitory computer-readable media of claim 8, wherein the one or more actions comprise: identifying different mailing data for the particular item of mail; causing printing of the different data on the particular item of mail or on a label to be affixed to the particular item of mail using a printing device.
 10. The one or more non-transitory computer-readable media of claim 8, wherein the one or more actions comprise: identifying different mailing data for the particular item of mail; causing the different mailing data to be encoded to generate encoded different mailing data; causing printing of the encoded different mailing data on the particular item of mail or on a label to be affixed to the particular item of mail using a printing device.
 11. The one or more non-transitory computer-readable media of claim 8, wherein determining the one or more actions to take with respect to the particular item of mail comprises: storing policy data for a plurality of categories of mail; using the extracted data, identifying a particular category of the plurality of categories for the particular item of mail; extracting data defining the one or more actions from a subset of the policy data corresponding to the particular category.
 12. The one or more non-transitory computer-readable media of claim 8, wherein the digital image comprises one or more of an address line of an envelope of the particular piece of mail, a return address line of the envelope of the particular piece of mail, or contents of the particular piece of mail.
 13. The one or more non-transitory computer-readable media of claim 8, wherein determining the one or more actions to take with respect to the particular item of mail is performed prior to the particular piece of mail being sent out for delivery and wherein the one or more actions comprise updating a delivery destination for the particular item of mail.
 14. The one or more non-transitory computer-readable media of claim 8, wherein determining the one or more actions to take with respect to the particular item of mail is performed after the particular item of mail has been returned and wherein the one or more actions comprise updating a delivery destination for the particular item of mail and causing the particular item of mail to be re-mailed to the updated delivery destination.
 15. A method comprising: receiving a data stream comprising initial mailing data for a plurality of items of mail; receiving a data extracted from a digital image of a particular item of mail using Optical Character Recognition (OCR) or by processing encoded data; based on the extracted data, matching the particular item of mail to particular mailing data from the data stream; determining, based, at least in part, on the extracted data and the particular mailing data, one or more actions to take with respect to the particular item of mail and, in response, causing performance of the one or more actions.
 16. The method of claim 15, wherein the one or more actions comprise: identifying different mailing data for the particular item of mail; causing printing of the different data on the particular item of mail or on a label to be affixed to the particular item of mail using a printing device.
 17. The method of claim 15, wherein determining the one or more actions to take with respect to the particular item of mail comprises: storing policy data for a plurality of categories of mail; using the extracted data, identifying a particular category of the plurality of categories for the particular item of mail; extracting data defining the one or more actions from a subset of the policy data corresponding to the particular category.
 18. The method of claim 15, wherein the digital image comprises one or more of an address line of an envelope of the particular piece of mail, a return address line of the envelope of the particular piece of mail, or contents of the particular piece of mail.
 19. The method of claim 15, wherein determining the one or more actions to take with respect to the particular item of mail is performed prior to the particular piece of mail being sent out for delivery and wherein the one or more actions comprise updating a delivery destination for the particular item of mail.
 20. The method of claim 15, wherein determining the one or more actions to take with respect to the particular item of mail is performed after the particular item of mail has been returned and wherein the one or more actions comprise updating a delivery destination for the particular item of mail and causing the particular item of mail to be re-mailed to the updated delivery destination. 